package cc.autoapi.pucong.auto.flow.provider.node.entity;

import cc.autoapi.pucong.auto.flow.persistence.po.node.NodeParamsPo;
import cc.autoapi.pucong.auto.flow.provider.node.entity.vo.NodeParamsVo;
import cc.autoapi.pucong.auto.flow.provider.node.entity.dto.NodeParamsUpdateDto;
import cc.autoapi.pucong.auto.flow.provider.node.entity.qo.NodeParamsQo;
import cc.autoapi.pucong.auto.flow.provider.node.entity.dto.NodeParamsAddDto;
import org.mapstruct.Mapper;
import org.mapstruct.factory.Mappers;

import java.util.List;

/**
 * @author pucong
 * @description 节点参数信息 cover
 * @create 2024-09-23
 */
@Mapper(componentModel = "spring")
public interface NodeParamsConvert {

    NodeParamsConvert INSTANCE = Mappers.getMapper(NodeParamsConvert.class);

    /**
     * dto转po
     * @param dto
     * @return
     */
    NodeParamsPo dto2po(NodeParamsUpdateDto dto);

    /**
     * dto转po
     * @param dto
     * @return
     */
    NodeParamsPo dto2po(NodeParamsQo dto);

    /**
     * dto转po
     * @param dto
     * @return
     */
    NodeParamsPo dto2po(NodeParamsAddDto dto);


    /**
     * do转dto
     * @param nodeParams
     * @return
     */
    NodeParamsVo po2vo(NodeParamsPo nodeParams);


    /**
     * list<po>转list<vo>
     * @param nodeParamss
     * @return
     */
    List<NodeParamsVo> po2vos(List<NodeParamsPo> nodeParamss);
}
